package com.yxw.live_vod_boot.service;

import com.yxw.live_vod_backend_facade.dto.ProductFeignQueryDTO;
import com.yxw.live_vod_backend_facade.vo.ProductSpecificationVO;
import com.yxw.live_vod_backend_facade.vo.ProductVO;
import com.yxw.live_vod_boot.dto.AddVodProductDto;
import com.yxw.live_vod_boot.dto.VodProductClickDto;
import com.yxw.yxnet_cd_center.common.dto.PageVO;
import com.yxw.yxnet_cd_center.common.utils.BaseResult;

import java.util.List;

/**
 * @author Administrator
 */
public interface ProductService {

    /**
     * 获取商品详情
     * @param productId
     * @return
     */
    BaseResult<ProductVO> getProductById(Long productId);

    /**
     * 获取商品列表
     * @param queryDTO
     * @return
     */
    BaseResult<PageVO<ProductVO>> getProductList(ProductFeignQueryDTO queryDTO);

    /**
     * 根据商品ID获取对应商品规格列表信息
     * @param productId
     * @return
     */
    BaseResult<List<ProductSpecificationVO>> getProductSpecificationById(Long productId);

    /**
     * 根据商品系列号获取商品列表
     * @param productSeriesNum
     * @return
     */
    BaseResult<List<ProductVO>> getProductByNum(String productSeriesNum);

    /**
     * 点播视频添加在售商品
     * @param dto
     */
    void addVodProduct(AddVodProductDto dto);

    /**
     * 点播商品记录点击次数
     * @param dto
     */
    void addVodProductClickInfo(VodProductClickDto dto);

    /**
     * 定时任务将点播商品详情存入数据库
     */
    void addVodProductClickJob();
}
